<?php

# -- DÉBUT NOTE DE LICENCE -------------------------------------
#
# Ce fichier fait partie de Clicpage.
#
# Copyright (c) 2010 Francois (www.clicpage.net)
# Distribué selon les termes de la licence GPL version 2.0.
# Consultez le fichier LICENCE ou
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- FIN NOTE DE LICENCE ---------------------------------------

class cpModuleReglages extends cpModuleAdmin
{
	
	
	
	
	
	/// @name Initialisation
	//@{
	
	
	public function __construct($core)
	{

		parent::__construct($core); 

		# Permission nécessaire: reglages
		$this->core->auth->verifierPermission('reglages', true);

		$this->setTitreModule(__('Réglages du site'));
		$this->ajouterBoutonAction(__('Enregistrer'), '#', 'boutonAction_enregistrer');
		
		$this->setActionsAutorisees('modifierReglages');
		
		# CSS et Javascript
		$this->setJavascript('reglages');

	}
	//@}
    
	
	

	
	/// @name Formulaires
	//@{
	
	
	public function action_modifierReglages()
	{
		
		# Vérification du titre
		if(empty($_POST['site_titre'])) {
			throw new cpErreur(__('Vous devez indiquer le titre du site.'), 'site_titre', 101);
		}
		
		# Vérification du thème
		$this->core->chargerThemes();
		if( empty($_POST['site_theme']) || !array_key_exists($_POST['site_theme'], $this->core->themes)) {
			throw new cpErreur(__('Donnée invalide'), 'site_theme', 103);
		}
		
		# Vérification de l'état du site
		if(!in_array($_POST['site_statut'], array(CP_STATUT_ONLINE, CP_STATUT_OFFLINE))) {
			throw new cpErreur(__('Donnée invalide'), 'site_statut', 103);
		}
		
		# Vérification de la langue
		if(!array_key_exists($_POST['site_langue'], $this->core->getLangues())) {
			throw new cpErreur(__('Donnée invalide'), 'site_langue', 103);
		}
		
		# Vérification de 'page_commentaires'
		if(!in_array((integer) $_POST['page_commentaires'], array(CP_COMMENTAIRES_ACTIFS, CP_COMMENTAIRES_PERMISSION, CP_COMMENTAIRES_DESACTIVES))) {
			throw new cpErreur(__('Donnée invalide'), 'commentaires_actifs', 103);
		}
		
		# Vérification de 'moderer_commentaires'
		if(!in_array((integer) $_POST['moderer_commentaires'], array(0, 1))) {
			throw new cpErreur(__('Donnée invalide'), 'moderer_commentaires', 103);
		}
		
		# Vérification de 'commentaire_titre'
		if(!in_array((integer) $_POST['commentaire_titre'], array(0, 1))) {
			throw new cpErreur(__('Donnée invalide'), 'commentaire_titre', 103);
		}
		
		# Vérification de 'public_jquery'
		if(!in_array((integer) $_POST['public_jquery'], array(0, 1))) {
			throw new cpErreur(__('Donnée invalide'), 'public_jquery', 103);
		}
		
		# Vérification de 'mode_url'
		if(!in_array($_POST['mode_url'], array('query_string', 'path_info'))) {
			throw new cpErreur(__('Donnée invalide'), 'mode_url', 103);
		}
		
		# --COMPORTEMENT-- adminAvantEnregistrerReglages
		$html.= $this->core->executerComportement('adminAvantEnregistrerReglages', $this);
		
		# Enregistrer dans la base de données
		$this->core->site->definirPropriete('site_titre', $_POST['site_titre'], 'core');
		$this->core->site->definirPropriete('site_soustitre', $_POST['site_soustitre'], 'core');
		$this->core->site->definirPropriete('site_description', $_POST['site_description'], 'core');
		$this->core->site->definirPropriete('site_auteur', $_POST['site_auteur'], 'core');
		$this->core->site->definirPropriete('site_copyright', $_POST['site_copyright'], 'core');
		$this->core->site->definirPropriete('site_statut', $_POST['site_statut'], 'core');
		$this->core->site->definirPropriete('site_langue', $_POST['site_langue'], 'core');
		$this->core->site->definirPropriete('site_tz', $_POST['site_tz'], 'core');
		$this->core->site->definirPropriete('site_theme', $_POST['site_theme'], 'core');
		$this->core->site->definirPropriete('page_commentaires', (integer) $_POST['page_commentaires'], 'core');
		$this->core->site->definirPropriete('moderer_commentaires', (integer) $_POST['site_titre'], 'core');
		$this->core->site->definirPropriete('commentaire_titre', (integer) $_POST['commentaire_titre'], 'core');
		$this->core->site->definirPropriete('public_jquery', (integer) $_POST['public_jquery'], 'core');
		$this->core->site->definirPropriete('mode_url', $_POST['mode_url'], 'core');

		# --COMPORTEMENT-- adminApresEnregistrerReglages
		$html.= $this->core->executerComportement('adminApresEnregistrerReglages', $this);
		
		# Message
		$this->messageOK(__('Les réglages du site ont été mis à jour avec succès.'));
		
	}
	//@} 
    
	

	
	
	/// @name Interface du module
	//@{
	
	
	public function interfaceModule()
	{
	
		$themesCombo = $this->core->getComboThemes();		
		
		# Valeurs initiales des champs de formulaire
				
		$proprietes = $this->core->site->getProprietes();
		
		if($this->erreursFormulairePresentes())
		{
			$site_titre 			= html::escapeHTML($_POST['site_titre']);
			$site_soustitre 		= html::escapeHTML($_POST['site_soustitre']);
			$site_description 		= html::escapeHTML($_POST['site_description']);
			$site_auteur 			= html::escapeHTML($_POST['site_auteur']);
			$site_copyright 		= html::escapeHTML($_POST['site_copyright']);
			$site_theme 			= $_POST['site_theme'];
			$site_statut 			= (integer) $_POST['site_statut'];
			$site_langue			= $_POST['site_langue'];
			$site_tz				= $_POST['site_tz'];
			$page_commentaires		= (integer) $_POST['page_commentaires'];
			$moderer_commentaires	= (integer) $_POST['moderer_commentaires'];
			$commentaire_titre		= (integer) $_POST['commentaire_titre'];
			$public_jquery			= (integer) $_POST['public_jquery'];
			$mode_url				= $_POST['mode_url'];
		}
		else
		{
			$site_titre 			= html::escapeHTML($proprietes['core']['site_titre']);
			$site_soustitre 		= html::escapeHTML($proprietes['core']['site_soustitre']);
			$site_description 		= html::escapeHTML($proprietes['core']['site_description']);
			$site_auteur 			= html::escapeHTML($proprietes['core']['site_auteur']);
			$site_copyright 		= html::escapeHTML($proprietes['core']['site_copyright']);
			$site_theme 			= $proprietes['core']['site_theme'];
			$site_statut 			= (integer) $proprietes['core']['site_statut'];
			$site_langue			= $proprietes['core']['site_langue'];
			$site_tz				= $proprietes['core']['site_tz'];
			$page_commentaires		= (integer) $proprietes['core']['page_commentaires'];
			$moderer_commentaires	= (integer) $proprietes['core']['moderer_commentaires'];
			$commentaire_titre		= (integer) $proprietes['core']['commentaire_titre'];
			$public_jquery			= (integer) $proprietes['core']['public_jquery'];
			$mode_url				= $proprietes['core']['mode_url'];
		}

		
		# HTML de l'interface
		$html =
		'<form id="reglages" action="index.php?module=reglages" method="post">'.
		$this->afficherMessages().
		$this->core->nonceHTML('modifierReglages').
		form::hidden('action', 'modifierReglages').
		'<fieldset>'.
			'<legend>'.__('Général').'</legend>'.
			'<p>'.
				'<label for="site_titre">'.__('Titre du site').'</label>'.
				$this->field('site_titre', 40, 250, $site_titre).
			'</p>'.
			'<p>'.
				'<label for="site_soustitre">'.__('Sous-titre du site').'</label>'.
				$this->field('site_soustitre', 40, 250, $site_soustitre).
			'</p>'.
			'<p>'.
				'<label for="site_description">'.__('Description du site').'</label>'.
				$this->textarea('site_description', 50, 5, $site_description).
			'</p>'.
			'<p>'.
				'<label for="site_auteur">'.__('Auteur du site').'</label>'.
				$this->field('site_auteur', 40, 250, $site_auteur).
			'</p>'.
			'<p>'.
				'<label for="site_copyright">'.__('Note de copyright').'</label>'.
				$this->field('site_copyright', 40, 250, $site_copyright).
			'</p>'.
		'</fieldset>'.
		'<fieldset>'.
			'<legend>'.__('Apparence').'</legend>'.
			'<p>'.
				'<label for="site_theme">'.__('Thème par défaut').'</label>'.
				$this->combo('site_theme', $themesCombo, $site_theme).
			'</p>'.
		'</fieldset>'.
		'<fieldset>'.
			'<legend>'.__('Configuration').'</legend>'.
			'<p>'.
				'<label for="site_statut">'.__('État du site').'</label>'.
				$this->combo('site_statut', array(
					__('En ligne')		=> CP_STATUT_ONLINE,
					__('Hors ligne')	=> CP_STATUT_OFFLINE
				), $site_statut).
			'</p>'.
			'<p>'.
				'<label for="site_langue">'.__('Langue par défaut').'</label>'.
				$this->combo('site_langue', $this->core->getComboLangues(), $site_langue).
			'</p>'.
			'<p>'.
				'<label for="site_tz">'.__('Fuseau horaire').'</label>'.
				$this->combo('site_tz', dt::getZones(true,true), $site_tz).
			'</p>'.
		'</fieldset>'.
		'<fieldset>'.
			'<legend>'.__('Commentaires').'</legend>'.
			'<p>'.
				'<label for="page_commentaires" style="width:275px;">'.__('Commentaires pour les nouvelles pages').'</label>'.
				$this->combo('page_commentaires', array(
					__('Activés') => CP_COMMENTAIRES_ACTIFS,
					__('Utilisateurs connectés seulement') => CP_COMMENTAIRES_PERMISSION,
					__('Désactivés') => CP_COMMENTAIRES_DESACTIVES
				), $page_commentaires).
			'</p>'.
			'<p>'.
				'<label for="moderer_commentaires" style="width:275px;">'.__('Modérer les commentaires').'</label>'.
				$this->combo('moderer_commentaires', array(
					__('Oui') => 1,
					__('Non') => 0
				), $moderer_commentaires).
			'</p>'.
			'<p>'.
				'<label for="commentaire_titre" style="width:275px;">'.__('Titre pour les commentaires').'</label>'.
				$this->combo('commentaire_titre', array(
					__('Oui') => 1,
					__('Non') => 0
				), $commentaire_titre).
			'</p>'.
		'</fieldset>';
				
		# --COMPORTEMENT-- adminApresHTMLReglages
		$html.= $this->core->executerComportement('adminApresHTMLReglages', $this);		
		
		$html.=
		'<fieldset>'.
			'<legend>'.__('Avancé').'</legend>'.
			'<p>'.
				'<label for="public_jquery" style="width:275px;">'.__('Charger jquery sur la partie publique du site').'</label>'.
				$this->combo('public_jquery', array(
					__('Oui') => 1,
					__('Non') => 0
				), $public_jquery).
			'</p>'.
			'<p>'.
				'<label for="mode_url" style="width:275px;">'.__('Méthode de lecture de l\'URL').'</label>'.
				$this->combo('mode_url', array(
					'QUERY_STRING'	=> 'query_string',
					'PATH_INFO'		=> 'path_info'
				), $mode_url).
			'</p>';
				
		# --COMPORTEMENT-- adminApresHTMLReglagesAvances
		$html.= $this->core->executerComportement('adminApresHTMLReglagesAvances', $this);
				
		$html.=
		'</fieldset>'.
		'<input type="submit" value="'.__('Enregistrer').'" />'.
		'</form>';
		
		return $html;
			
	}
	//@}

    
}

?>